﻿// --------------------------------------------------------------------------------------------------------------------
// <copyright file="ISocialMediaEntry.cs" company="Catel development team">
//   Copyright (c) 2008 - 2012 Catel development team. All rights reserved.
// </copyright>
// --------------------------------------------------------------------------------------------------------------------

namespace Catwitter.Models
{
    using System;

    /// <summary>
    /// Interface defining the contract for a social media entry.
    /// </summary>
    public interface ISocialMediaEntry
    {
        #region Properties
        /// <summary>
        /// Gets the photo of the account that posted this entry.
        /// </summary>
        /// <value>The photo of the account that posted this entry.</value>
        Uri Photo { get; }

        /// <summary>
        /// Gets the name of the author.
        /// </summary>
        /// <value>The name of the author.</value>
        string Author { get; }

        /// <summary>
        /// Gets the message content.
        /// </summary>
        /// <value>The message content.</value>
        string Message { get; }

        /// <summary>
        /// Gets the message preview, which are the first 144 characters of a message.
        /// </summary>
        /// <value>The message preview.</value>
        string MessagePreview { get; }

        /// <summary>
        /// Gets the timestamp when this entry was posted.
        /// </summary>
        /// <value>The timestamp when this entry was posted.</value>
        DateTime Timestamp { get; }

        /// <summary>
        /// Gets the URL for the real content.
        /// </summary>
        /// <value>The URL for the real content.</value>
        string Url { get; }

        /// <summary>
        /// Gets the name of the provider.
        /// </summary>
        /// <value>The provider name.</value>
        string Provider { get; }
        #endregion
    }
}